package cn.com.db.service;

import cn.com.Enum.OrderStatus;
import cn.com.Enum.OrderStatus;
import cn.com.db.model.DiyOrder;
import cn.com.util.TimeUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.List;

@Service
public class DiyOrderService extends BaseService {

    public void createDiyOrder(DiyOrder diyOrder){
        diyOrderDao.createDiyOrder(diyOrder);
    }

    public DiyOrder getDiyOrderById(String id)
    {
        if (StringUtils.isBlank(id)){
            return null;
        }
        return diyOrderDao.getDiyOrderById(id);
    }
    public List<DiyOrder> getDiyOrder(DiyOrder diyOrder, Timestamp start,Timestamp end, Integer page, Integer count){
        return diyOrderDao.getDiyOrder(diyOrder,start,end,(page-1)*count,count);
    }

    public Integer countDiyOrder(DiyOrder diyOrder,Timestamp start,Timestamp end){
        return diyOrderDao.countDiyOrder(diyOrder,start,end);
    }

    public List<DiyOrder> getDiyOrder(DiyOrder diyOrder, Integer page, Integer count){
        return diyOrderDao.getDiyOrder(diyOrder,null, null,(page-1)*count,count);
    }

    public Integer countDiyOrder(DiyOrder diyOrder){
        return diyOrderDao.countDiyOrder(diyOrder,null,null);
    }

    public BigDecimal getTurnover(String storeId,String sellerId){
        return diyOrderDao.getTurnover(sellerId,storeId, OrderStatus.COMPLETE.getStatus());
    }

    public BigDecimal getTodayTurnover(String storeId,String sellerId){
        return diyOrderDao.getTodayTurnover(
                sellerId,
                storeId,
                TimeUtil.getTodayZero(),
                TimeUtil.getTodayTwelve(),
                OrderStatus.COMPLETE.getStatus());
    }

    public Integer getDealPeopleNum(String storeId,String sellerId){
        return diyOrderDao.getDealPeopleNum(sellerId,storeId,OrderStatus.COMPLETE.getStatus());
    }

    public Integer getDiyOrderNum(String storeId,String sellerId){
        return diyOrderDao.getDiyOrderNum(sellerId,storeId,OrderStatus.COMPLETE.getStatus());
    }


    public void updateDiyOrderStatus(String diyOrderId,Integer status){
        diyOrderDao.updateDiyOrderStatus(diyOrderId,status);
    }

    @Transactional
    public void cancelDiyOrder(String id){
        diyOrderDao.cancel(id);
    }

	public List<DiyOrder> getDiyOrders(List<String> idList) {
		return diyOrderDao.getDiyOrders(idList);
	}


}
